//package com.zj.weather.bgviews;
//
//import android.content.Context;
//import android.graphics.Canvas;
//import android.graphics.drawable.GradientDrawable;
//
//import java.util.ArrayList;
//
//import com.zj.weather.base.BaseWeatherBgView;
//
//import static com.zj.weather.utils.RandomUtils.getAnyRandInt;
//import static com.zj.weather.utils.RandomUtils.getRandom;
//
///**
// * Created by zhaojie on 2017/9/14.
// */
//public class HazeDrawer extends BaseWeatherBgView {
//
//    public HazeDrawer(Context context, int key) {
//        super(context, key);
//
//    }
//
//    private GradientDrawable drawable;
//    private ArrayList<HazeHolder> holders = new ArrayList<>();
//    private float minDX, maxDX, minDY, maxDY, minX, minY;
//
//    @Override
//    protected void initValues(Context context) {
//        drawable = new GradientDrawable(GradientDrawable.Orientation.BL_TR, new int[]{0x40d4ba3f, 0x50d4ba3f});
//        drawable.setShape(GradientDrawable.OVAL);
//        drawable.setGradientType(GradientDrawable.RADIAL_GRADIENT);
//        minDX = 0.04f;
//        maxDX = 0.065f;
//        minDY = -0.02f;
//        maxDY = 0.02f;
//        minX = minY = 0.0f;
//    }
//
//    @Override
//    public void drawWeather(Canvas canvas, float alpha) {
//        for (HazeHolder holder : holders) {
//            holder.updateRandom(drawable, minDX, maxDX, minDY, maxDY, minX, minY, this.width, this.height, alpha);
//            drawable.draw(canvas);
//        }
//    }
//
//    @Override
//    public void setSize(int width, int height) {
//        super.setSize(width, height);
//        if (this.holders.size() == 0) {
//            final float minSize = dp2px(1.8f);
//            final float maxSize = dp2px(3.4f);
//            for (int i = 0; i < 80; i++) {
//                final float starSize = getRandom(minSize, maxSize);
//                HazeHolder holder = new HazeHolder(getRandom(0, width), getAnyRandInt(height), starSize, starSize);
//                holders.add(holder);
//            }
//        }
//    }
//
//
//    public static class HazeHolder {
//        float x;
//        float y;
//        float w;
//        float h;
//
//        HazeHolder(float x, float y, float w, float h) {
//            super();
//            this.x = x;
//            this.y = y;
//            this.w = w;
//            this.h = h;
//
//        }
//
//        void updateRandom(GradientDrawable drawable, float minDX, float maxDX, float minDY, float maxDY, float minX, float minY, float maxX, float maxY, float alpha) {
//            if (maxDX < minDX || (maxDY < minDY)) {
//                throw new IllegalArgumentException("max should bigger than min!!!!");
//            }
//            this.x += (getRandom(minDX, maxDX) * w);
//            this.y += (getRandom(minDY, maxDY) * h);
//            if (x > maxX) {
//                x = minX;
//            } else if (x < minX) {
//                x = maxX;
//            }
//            if (y > maxY) {
//                y = minY;
//            } else if (y < minY) {
//                y = maxY;
//            }
//
//            final int left = Math.round(x - w / 2f);
//            final int right = Math.round(x + w / 2f);
//            final int top = Math.round(y - h / 2f);
//            final int bottom = Math.round(y + h / 2f);
//            drawable.setAlpha((int) (255f * alpha));
//            drawable.setBounds(left, top, right, bottom);
//            drawable.setGradientRadius(w / 2.2f);
//        }
//    }
//}
